package com.enjoyor.soa.traffic.api.service.dubbo.ejcds;

import java.util.List;

import com.enjoyor.soa.traffic.api.dto.ejcds.EventPressDto;
import com.enjoyor.soa.traffic.api.dto.ejcds.EventTimeoutConfDto;
import com.enjoyor.soa.traffic.api.dto.ejcds.EventTimeoutDataDto;
import com.enjoyor.soa.traffic.api.dto.ejcds.EventTimeoutReportDto;
import com.enjoyor.soa.traffic.api.dto.ejcds.EventWarnConfDto;
import com.enjoyor.soa.traffic.api.dto.ejcds.EventWarnDataDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

public interface DubboEventMessageService {

	/************TimeoutConf start****************************************/
	/**
	 * 分页获取超时配置信息列表
	 * @param strTimeOutConfId 超时配置编号
	 * @param strTimeOutConfName 超时配置名称
	 * @param startStatus 开始状态编号
	 * @param endStatus 结束状态编号
	 * @param strIsUse 是否使用（0为否，1为是），默认为1
	 * @param page
	 * @param token
	 * @param systemKey
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public ResultPojo pageTimeoutConf(String strTimeOutConfId, String strTimeOutConfName, String startStatus,
			String endStatus, String strIsUse, Page page, String token, String systemKey);

	/**
	 * 获取超时配置信息列表
	 * @param strTimeOutConfId 超时配置编号
	 * @param strTimeOutConfName 超时配置名称
	 * @param startStatus 开始状态编号
	 * @param endStatus 结束状态编号
	 * @param strIsUse 是否使用（0为否，1为是），默认为1
	 * @param token
	 * @param systemKey
	 * @return
	 */
	public ResultPojo listTimeoutConf(String strTimeOutConfId, String strTimeOutConfName, String startStatus,
			String endStatus, String strIsUse, String notConfId, String token, String systemKey);

	/**
	 * 添加超时配置信息
	 * @param dto 超时配置信息实体类
	 * @param token
	 * @param systemKey
	 * @return
	 */
	public ResultPojo addTimeoutConf(EventTimeoutConfDto dto, String token, String systemKey);

	/**
	 * 修改超时配置信息
	 * @param dto 超时配置信息实体类
	 * @param token
	 * @param systemKey
	 * @return
	 */
	public ResultPojo editTimeoutConf(EventTimeoutConfDto dto, String token, String systemKey);

	/**
	 * 删除超时配置信息
	 * @param strTimeOutIds 超时配置编号列表
	 * @param token
	 * @param systemKey
	 * @return
	 */
	public ResultPojo removeTimeoutConf(List<String> strTimeOutIds, String token, String systemKey);

	/************TimeoutConf end****************************************/
	
	/************TimeoutData start****************************************/
	/**
	 * 查询超时记录列表
	 * @param strTimeoutId 超时编号
	 * @param strEventId 警情编号
	 * @param SetId 超时配置编号
	 * @param strTimeOutContent 报警内容
	 * @param strTimeStart 查询开始时间
	 * @param strTimeEnd 查询结束时间
	 * @param token
	 * @param systemKey
	 * @return
	 */
	public ResultPojo listTimeoutData(String strTimeoutId, String strEventId, String SetId, String strTimeOutContent,
			String strTimeStart, String strTimeEnd, Integer handled, String token, String systemKey);

	/**
	 * 添加超时记录
	 * @param dto 超时数据实体类
	 * @param token
	 * @param systemKey
	 * @return
	 */
	public ResultPojo addTimeoutData(EventTimeoutDataDto dto, String token, String systemKey);

	/************TimeoutData end****************************************/

	/************TimeoutReport start****************************************/
	/**
	 * 添加超时报备
	 * @param dto
	 * @param token
	 * @param systemKey
	 * @return
	 */
	public ResultPojo addTimeoutReport(EventTimeoutReportDto dto, String token, String systemKey);
	/**
	 * 获取超时报备列表
	 * @param eventId
	 * @param timeoutConfId
	 * @param reportPeople
	 * @param token
	 * @param systemKey
	 * @return
	 */
	public ResultPojo listTimeoutReport(String eventId, String timeoutConfId, String reportPeople, String startTime, String endTime, String token, String systemKey);
	/************TimeoutReport end****************************************/
	
	/************EventPress start****************************************/
	/**
	 * 查询催警记录列表
	 * @param strPressId 催警编号
	 * @param strEventId 警情编号
	 * @param strPressPersonId 催警人编号
	 * @param strObjectId 催警对象编号
	 * @param strObjectType 催警对象类型（0为警员，1为部门）
	 * @param strTimeStart 查询开始时间
	 * @param strTimeEnd 查询结束时间
	 * @param token
	 * @param systemKey
	 * @return
	 */
	public ResultPojo listEventPress(String strPressId, String strEventId, String strPressPersonId, String strObjectId,
			String strObjectType, String strTimeStart, String strTimeEnd, String token, String systemKey);

	/**
	 * 添加催警记录
	 * @param dto 催警记录实体类
	 * @param token
	 * @param systemKey
	 * @return
	 */
	public ResultPojo addEventPress(EventPressDto dto, String token, String systemKey);
	/************EventPress end****************************************/
	
	/************EventWarnConf start****************************************/
	/**
	 * 分页查询预警配置信息列表
	 * @param strWarnConfId 预警配置编号
	 * @param strWarnConfName 预警配置名称
	 * @param strWarnTypeId 预警类型编号
	 * @param strDeptId 部门编号
	 * @param strLevelId 警情等级编号
	 * @param strTypeId 警情类型编号
	 * @param isUse 是否使用
	 * @param page
	 * @param token
	 * @param systemKey
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public ResultPojo pageEventWarnConf(String strWarnConfId, String strWarnConfName, String strWarnTypeId,
			String strDeptId, String periodId,
			String specialTypeId, String strTypeId, String isUse, Page page,
			String token, String systemKey);

	/**
	 * 查询预警配置信息列表
	 * @param strWarnConfId 预警配置编号
	 * @param strWarnConfName 预警配置名称
	 * @param strWarnTypeId 预警类型编号
	 * @param strDeptId 部门编号
	 * @param strLevelId 警情等级编号
	 * @param strTypeId 警情类型编号
	 * @param isUse 是否使用
	 * @param token
	 * @param systemKey
	 * @return
	 */
	public ResultPojo listEventWarnConf(String strWarnConfId, String strWarnConfName, String strWarnTypeId,
			String strDeptId, String periodId,
			String specialTypeId, String strTypeId, String isUse, String token,
			String systemKey);

	/**
	 * 添加预警配置信息
	 * @param dto 预警配置信息实体类
	 * @param token
	 * @param systemKey
	 * @return
	 */
	public ResultPojo addWarnConf(EventWarnConfDto dto, String token, String systemKey);

	/**
	 * 修改预警配置信息
	 * @param dto 预警配置信息实体类
	 * @param token
	 * @param systemKey
	 * @return
	 */
	public ResultPojo editWarnConf(EventWarnConfDto dto, String token, String systemKey);

	/**
	 * 删除预警配置信息
	 * @param strWarnIds 预警配置编号列表
	 * @param token
	 * @param systemKey
	 * @return
	 */
	public ResultPojo removeWarnConf(List<String> strWarnIds, String token, String systemKey);
	/************EventWarnConf end****************************************/
	
	/************EventWarnData start****************************************/
	/**
	 * 查询预警数据列表
	 * @param strWarnId 预警编号
	 * @param strLevelId 预警级别ID
	 * @param strTypeId 预警类型ID
	 * @param strContent 预警内容
	 * @param strTimeStart 查询开始时间
	 * @param strTimeEnd 查询结束时间
	 * @param token
	 * @param systemKey
	 * @return
	 */
	public ResultPojo listEventWarnData(String strWarnId, String strLevelId, String strTypeId, String strContent,
			String strTimeStart, String strTimeEnd, String token, String systemKey);

	/**
	 * 添加预警数据
	 * @param dto 预警数据实体类
	 * @param token
	 * @param systemKey
	 * @return
	 */
	public ResultPojo addWarnData(EventWarnDataDto dto, String token, String systemKey);
	/************EventWarnConf end****************************************/
}
